package org.NooLab.itexx.app.gui.definition;

import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;

import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.text.JTextComponent;

import org.NooLab.itexx.ITexxWindowCommons;
import org.NooLab.itexx.ITexxWindowIntf;
import org.NooLab.itexx.app.controller.ItexxModelController;
import org.NooLab.itexx.app.gui.MainStatusBar;
import org.NooLab.itexx.app.gui.handlers.ResultPanelPopupMenu;
import org.NooLab.itexx.app.gui.handlers.keys.Keyhandlers;

import org.NooLab.utilities.logging.PrintLog;




public interface ITexxWindowGuiIntf {

	// this is dependent on OS...
	public static final float _DRED   = ((float)216)/((float)255.0) ;
	public static final float _DGREEN = ((float)216)/((float)255.0) ;
	public static final float _DBLUE  = ((float)222)/((float)255.0) ;
	
	public static final int   _RESULTPANEL_SIZE_MIN = 30;
	public static final int   _RESULTPANEL_SIZE_MAX = 320;
	public static final int   _RESULTPANEL_SIZE_DEFAULT = 100 ;
	
	
	void setAppCommons(ITexxWindowCommons iTexxWindowCommons);

	ITexxWindowIntf getTexxWindowApp();

	PrintLog getOut();

	JPanel getPanelFound();

	JPanel getPanelFoundTab();

	JPanel getTopPanel();

	JPanel getContentPanel();

	void createITexxWindowGui();

	JTextArea getTextNormal();

	JTextArea getTextMandatory();

	JTextArea getTextExclude();

	JTextArea getTextTolerated();

	JPanel getjPanelScrollWrapFoundStack();

	JScrollPane getScrollPaneReturnedResults();

	JPanel  getjPanelFoundScrollerHost();

	JTabbedPane getTabbedPaneMain();

	
	Color getMappedColor(JComponent component, float transparency);
	
	
	void setMappedColor(JComponent component, float[] colorChannels);
	
	Color getMappedColor(JComponent component);

	void relocateFoundItemsPanel(int flag);

	boolean isSimpleWindow();

	void setSettingsProvider(ITexxWindowGuiFormSettings iTexxWindowGuiFormSettings);

	Component getjPanelHistoryTree();

	Component getjPanelPGraphics();

	JButton getNewButton();

	JButton getOpenButton();

	JButton getSaveButton();

	JButton getjButtonSingleWindow();

	JToolBar getMainToolBar();

	ITexxWindowGuiFormSettings getGuiFormSettings();

	JPanel getPanelMetaSearchBrowser();

	ItexxModelController getItexxModel();

	JTextField getTextFieldDedicatedSearch();

	JPanel getjPanelWebMeta();

	JTextArea getFocusNormalTextAreaFileDrop();

	void showResultPanelPopup(int panelIndex);

	JPanel getJPanelMainStatusBar();

	MainStatusBar getMainStatusBar() ;

	ResultPanelPopupMenu getResultPanelPopupMenu();

	JFrame getMainFrame();

	boolean isStatusBarHidden();

	void controlVerticalSize();

	void toggleStatusBar();

	int getResultPanelSize();

	void setResultPanelSize(int height);

	void setActualFrameHeight(int height);

	int getActualFrameHeight();

	void setStatusLabelText(String caption);

	void setStatusLabelText(String caption, int delay);
 

	

	
	
	

}
